home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2003 November A
/
PCWK1103A.iso
/
Adobe After Effects 6.0 tryout
/
MM5.Cab
/
F3697_render_and_email.jsx.304FA6F7_2783_11D4_8520_00C04F602FD3
< prev
next >
Wrap
Text File
|
2003-07-18
|
4KB
|
130 lines
// version history
// 2 - 6/24/03 added support for authorization settings and better errors.
// also removed naked \n from body of email and replaced with \r\n.
{
var safeToRunScript = true;
safeToRunScript = app.project != null;
if (! app.project) {
alert ("A project must be open to run this script.");
}
if (safeToRunScript) {
//check the render queue and make certain at least one item is queued
safeToRunScript = false;
for (i = 1; i <= app.project.renderQueue.numItems; ++i) {
if (app.project.renderQueue.item(i).status == RQItemStatus.QUEUED) {
safeToRunScript = true;
break;
}
}
if (! safeToRunScript) {
alert ("You do not have any items set to render.");
}
}
if (safeToRunScript) {
// check and see if we can access the network to send email
// test before the render so the person doesn't go home and wait for an email...
// Load code from a file with handy emailing methods:
var emailCodeFile = new File("email_methods.jsx");
emailCodeFile.open("r");
eval( emailCodeFile.read() );
emailCodeFile.close();
// this address isn't actually used until send() is called, but specify the loopback for now
// this is a test to see if network access is enabled in the preferences
// [24803] cprosser
{
var email_test = new EmailSocket("127.0.0.1");
}
// The script email_setup.jsx will prompt the user and establish the settings.
// We'll only run it now if we don't have the settings already.
// If you want to change the settings, you can run email_setup.jsx as a
// separate script at any time.
var settings = app.settings;
if ( !settings.haveSetting("Email Settings", "Mail Server") ||
!settings.haveSetting("Email Settings", "Reply-to Address") ||
!settings.haveSetting("Email Settings", "Render Report Recipient")){
// We don't have the settings yet, so run email_setup.jsx
// to prompt for them
var email_setupfile = new File("email_setup.jsx");
email_setupfile.open("r");
eval( email_setupfile.read() );
email_setupfile.close();
}
var myQueue = app.project.renderQueue //creates a shortcut for RQ
// Call render
myQueue.render();
// Now rendering is complete.
// Create a string for the mail message that contains:
// Start time (date)
// Render time of each item in the queue
// Total render time
var projectName = "Unsaved Project";
if (app.project.file) {
projectName = app.project.file.name;
}
// can't have bare LF in email, always put \r before \n or some
// servers will die.
var myMessage = "Rendering of " + projectName + " is complete.\r\n\r\n";
// Email the message.
// We'll use three Settings to determine how to mail.
// The section will be named "Email Settings"
// The 3 settings will be named:
// "Mail Server" - the mail server to use when sending mail.
// "Reply-to Address" - the address from which the mail will be sent
// "Render Report Recipient" - the address to which mail will be sent.
if ( !settings.haveSetting("Email Settings", "Mail Server") ||
!settings.haveSetting("Email Settings", "Reply-to Address") ||
!settings.haveSetting("Email Settings", "Render Report Recipient")){
alert("Can't send an email, I don't have all the settings I need. Aborting.");
} else {
try {
// send the email
var serverSetting = settings.getSetting("Email Settings", "Mail Server");
var fromSetting = settings.getSetting("Email Settings", "Reply-to Address");
var toSetting = settings.getSetting("Email Settings", "Render Report Recipient");
var authUser;
var authPass;
if (app.settings.haveSetting("Email Settings", "Auth User")) {
authUser = app.settings.getSetting("Email Settings", "Auth User");
}
if (app.settings.haveSetting("Email Settings", "Auth Pass")) {
authPass = app.settings.getSetting("Email Settings", "Auth Pass");
}
//ack, can't delete settings...
if (authUser == "") {
authUser = null;
authPass = null;
}
var myMail = new EmailSocket(serverSetting);
if (! myMail.send (fromSetting, toSetting, "AE Render Completed", myMessage, authUser, authPass) ) {
alert("Sending mail failed");
}
} catch (e) {
alert("Unable to send email.\n" + e.toString());
}
}
}
}